<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.10.0"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>common_util: src/common_util/strutil.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<script type="text/javascript" src="cookie.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">common_util
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.10.0 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_2961cad218251a7c35c6867350b80887.html">common_util</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">strutil.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Common string utilities.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
</div>
<p><a href="strutil_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a06403fd08d0613688f85543e72a1ddb7" id="r_a06403fd08d0613688f85543e72a1ddb7"><td class="memItemLeft" align="right" valign="top"><a id="a06403fd08d0613688f85543e72a1ddb7" name="a06403fd08d0613688f85543e72a1ddb7"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><b>cutl::strvec</b> = std::vector&lt;std::string&gt;</td></tr>
<tr class="memdesc:a06403fd08d0613688f85543e72a1ddb7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The type of vector strings used in this library. <br /></td></tr>
<tr class="separator:a06403fd08d0613688f85543e72a1ddb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a3726a74d715fb5d878fe450b64e439c6" id="r_a3726a74d715fb5d878fe450b64e439c6"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3726a74d715fb5d878fe450b64e439c6">cutl::to_upper</a> (const std::string &amp;str)</td></tr>
<tr class="memdesc:a3726a74d715fb5d878fe450b64e439c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string to upper case.  <br /></td></tr>
<tr class="separator:a3726a74d715fb5d878fe450b64e439c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a191b809565dda0b675926b0759e41c4e" id="r_a191b809565dda0b675926b0759e41c4e"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a191b809565dda0b675926b0759e41c4e">cutl::to_lower</a> (const std::string &amp;str)</td></tr>
<tr class="memdesc:a191b809565dda0b675926b0759e41c4e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a string to lower case.  <br /></td></tr>
<tr class="separator:a191b809565dda0b675926b0759e41c4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f0e910cfe8e2aecb529dcb0a4780789" id="r_a7f0e910cfe8e2aecb529dcb0a4780789"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7f0e910cfe8e2aecb529dcb0a4780789">cutl::lstrip</a> (const std::string &amp;str)</td></tr>
<tr class="memdesc:a7f0e910cfe8e2aecb529dcb0a4780789"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove leading whitespaces from a string.  <br /></td></tr>
<tr class="separator:a7f0e910cfe8e2aecb529dcb0a4780789"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11c02ddd4eb2a2ca0ec3aa76321920f5" id="r_a11c02ddd4eb2a2ca0ec3aa76321920f5"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a11c02ddd4eb2a2ca0ec3aa76321920f5">cutl::rstrip</a> (const std::string &amp;str)</td></tr>
<tr class="memdesc:a11c02ddd4eb2a2ca0ec3aa76321920f5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove trailing whitespaces from a string.  <br /></td></tr>
<tr class="separator:a11c02ddd4eb2a2ca0ec3aa76321920f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88b6df1e1f47d1accbfefc37dff7da34" id="r_a88b6df1e1f47d1accbfefc37dff7da34"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a88b6df1e1f47d1accbfefc37dff7da34">cutl::strip</a> (const std::string &amp;str)</td></tr>
<tr class="memdesc:a88b6df1e1f47d1accbfefc37dff7da34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove leading and trailing whitespaces from a string.  <br /></td></tr>
<tr class="separator:a88b6df1e1f47d1accbfefc37dff7da34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dfe8573225214ea4e1106dadb486f76" id="r_a6dfe8573225214ea4e1106dadb486f76"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6dfe8573225214ea4e1106dadb486f76">cutl::starts_with</a> (const std::string &amp;str, const std::string &amp;start, bool ignoreCase=false)</td></tr>
<tr class="memdesc:a6dfe8573225214ea4e1106dadb486f76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a string starts with a given substring.  <br /></td></tr>
<tr class="separator:a6dfe8573225214ea4e1106dadb486f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12ec77887a1aa7ccd6a2e1d4caf820dc" id="r_a12ec77887a1aa7ccd6a2e1d4caf820dc"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a12ec77887a1aa7ccd6a2e1d4caf820dc">cutl::ends_with</a> (const std::string &amp;str, const std::string &amp;end, bool ignoreCase=false)</td></tr>
<tr class="memdesc:a12ec77887a1aa7ccd6a2e1d4caf820dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if a string ends with a given substring.  <br /></td></tr>
<tr class="separator:a12ec77887a1aa7ccd6a2e1d4caf820dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21aed1f340f8db81592fc712a5f54393" id="r_a21aed1f340f8db81592fc712a5f54393"><td class="memItemLeft" align="right" valign="top"><a class="el" href="#a06403fd08d0613688f85543e72a1ddb7">strvec</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21aed1f340f8db81592fc712a5f54393">cutl::split</a> (const std::string &amp;str, const std::string &amp;separator)</td></tr>
<tr class="memdesc:a21aed1f340f8db81592fc712a5f54393"><td class="mdescLeft">&#160;</td><td class="mdescRight">Split a string into a vector of substrings using a given separator.  <br /></td></tr>
<tr class="separator:a21aed1f340f8db81592fc712a5f54393"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53028b182f613c301ac433fbf3723ac0" id="r_a53028b182f613c301ac433fbf3723ac0"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a53028b182f613c301ac433fbf3723ac0">cutl::join</a> (const <a class="el" href="#a06403fd08d0613688f85543e72a1ddb7">strvec</a> &amp;strlist, const std::string &amp;separator=&quot;&quot;)</td></tr>
<tr class="memdesc:a53028b182f613c301ac433fbf3723ac0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Join a vector of strings into a single string using a given separator.  <br /></td></tr>
<tr class="separator:a53028b182f613c301ac433fbf3723ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96f118a5cc0f1cc4fef2488e8cbc6631" id="r_a96f118a5cc0f1cc4fef2488e8cbc6631"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a96f118a5cc0f1cc4fef2488e8cbc6631">cutl::desensitizing</a> (const std::string &amp;str)</td></tr>
<tr class="memdesc:a96f118a5cc0f1cc4fef2488e8cbc6631"><td class="mdescLeft">&#160;</td><td class="mdescRight">Desensitizing a string by replacing some characters with '*'.  <br /></td></tr>
<tr class="separator:a96f118a5cc0f1cc4fef2488e8cbc6631"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Common string utilities. </p>
<dl class="section copyright"><dt>Copyright</dt><dd>Copyright (c) 2024, Spencer.Luo. All Rights Reserved.</dd></dl>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p><pre class="fragment">  http://www.apache.org/licenses/LICENSE-2.0
</pre><p> Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations.</p>
<dl class="section author"><dt>Author</dt><dd>spencer.luo </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2024-05-13 </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a96f118a5cc0f1cc4fef2488e8cbc6631" name="a96f118a5cc0f1cc4fef2488e8cbc6631"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96f118a5cc0f1cc4fef2488e8cbc6631">&#9670;&#160;</a></span>desensitizing()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::desensitizing </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Desensitizing a string by replacing some characters with '*'. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be desensitized. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the desensitized string. </dd></dl>

</div>
</div>
<a id="a12ec77887a1aa7ccd6a2e1d4caf820dc" name="a12ec77887a1aa7ccd6a2e1d4caf820dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a12ec77887a1aa7ccd6a2e1d4caf820dc">&#9670;&#160;</a></span>ends_with()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cutl::ends_with </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>end</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool</td>          <td class="paramname"><span class="paramname"><em>ignoreCase</em><span class="paramdefsep"> = </span><span class="paramdefval">false</span></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if a string ends with a given substring. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be checked. </td></tr>
    <tr><td class="paramname">end</td><td>the substring to be checked. </td></tr>
    <tr><td class="paramname">ignoreCase</td><td>whether to ignore case when comparing, default is false. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the string ends with the substring, false otherwise. </dd></dl>

</div>
</div>
<a id="a53028b182f613c301ac433fbf3723ac0" name="a53028b182f613c301ac433fbf3723ac0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a53028b182f613c301ac433fbf3723ac0">&#9670;&#160;</a></span>join()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::join </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="#a06403fd08d0613688f85543e72a1ddb7">strvec</a> &amp;</td>          <td class="paramname"><span class="paramname"><em>strlist</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>separator</em><span class="paramdefsep"> = </span><span class="paramdefval">&quot;&quot;</span></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Join a vector of strings into a single string using a given separator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">strlist</td><td>the vector of strings to be joined. </td></tr>
    <tr><td class="paramname">separator</td><td>the separator to join the strings. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the joined string. </dd></dl>

</div>
</div>
<a id="a7f0e910cfe8e2aecb529dcb0a4780789" name="a7f0e910cfe8e2aecb529dcb0a4780789"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7f0e910cfe8e2aecb529dcb0a4780789">&#9670;&#160;</a></span>lstrip()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::lstrip </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove leading whitespaces from a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be stripped. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the stripped string. </dd></dl>

</div>
</div>
<a id="a11c02ddd4eb2a2ca0ec3aa76321920f5" name="a11c02ddd4eb2a2ca0ec3aa76321920f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a11c02ddd4eb2a2ca0ec3aa76321920f5">&#9670;&#160;</a></span>rstrip()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::rstrip </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove trailing whitespaces from a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be stripped. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the stripped string. </dd></dl>

</div>
</div>
<a id="a21aed1f340f8db81592fc712a5f54393" name="a21aed1f340f8db81592fc712a5f54393"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21aed1f340f8db81592fc712a5f54393">&#9670;&#160;</a></span>split()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">strvec cutl::split </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>separator</em></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Split a string into a vector of substrings using a given separator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be split. </td></tr>
    <tr><td class="paramname">separator</td><td>the separator to split the string. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>strvec the vector of substrings. </dd></dl>

</div>
</div>
<a id="a6dfe8573225214ea4e1106dadb486f76" name="a6dfe8573225214ea4e1106dadb486f76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6dfe8573225214ea4e1106dadb486f76">&#9670;&#160;</a></span>starts_with()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool cutl::starts_with </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>start</em>, </span></td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool</td>          <td class="paramname"><span class="paramname"><em>ignoreCase</em><span class="paramdefsep"> = </span><span class="paramdefval">false</span></span>&#160;)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if a string starts with a given substring. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be checked. </td></tr>
    <tr><td class="paramname">start</td><td>the substring to be checked. </td></tr>
    <tr><td class="paramname">ignoreCase</td><td>whether to ignore case when comparing, default is false. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if the string starts with the substring, false otherwise. </dd></dl>

</div>
</div>
<a id="a88b6df1e1f47d1accbfefc37dff7da34" name="a88b6df1e1f47d1accbfefc37dff7da34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88b6df1e1f47d1accbfefc37dff7da34">&#9670;&#160;</a></span>strip()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::strip </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Remove leading and trailing whitespaces from a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be stripped. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the stripped string. </dd></dl>

</div>
</div>
<a id="a191b809565dda0b675926b0759e41c4e" name="a191b809565dda0b675926b0759e41c4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a191b809565dda0b675926b0759e41c4e">&#9670;&#160;</a></span>to_lower()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::to_lower </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a string to lower case. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be converted. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the converted string. </dd></dl>

</div>
</div>
<a id="a3726a74d715fb5d878fe450b64e439c6" name="a3726a74d715fb5d878fe450b64e439c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3726a74d715fb5d878fe450b64e439c6">&#9670;&#160;</a></span>to_upper()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string cutl::to_upper </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;</td>          <td class="paramname"><span class="paramname"><em>str</em></span></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert a string to upper case. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>the string to be converted. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>std::string the converted string. </dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.10.0
</small></address>
</body>
</html>
